home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Games / dinkum3 / dink_glb.h < prev    next >
C/C++ Source or Header  |  1995-05-03  |  45KB  |  995 lines

  1. /***************************************************************/
  2. /*                                                             */
  3. /*             --- Global Variables Header File ---            */
  4. /*                                                             */
  5. /*        Software by Gary A. Allen, Jr.  16 January 1993      */
  6. /*           (c) Copyright 1993 by Gary A. Allen, Jr.          */
  7. /*                                                             */
  8. /***************************************************************/
  9.  
  10. /* repeated global variable quantites */
  11. /*  Do not move these into the body of the header file. */
  12. #define Vocab_cnt        343
  13. #define DM_tag            344    /* DM_tag    = Vocab_cnt + 1 */
  14.  
  15. #define DM_room             249
  16.  
  17. #define Enemy_cnt         15 
  18. #define Objcnt            82
  19. #define Read_objcnt        15
  20. #define Quest_max        9
  21. #define Verb_max         81 
  22. #define    Adj_max         20 
  23. #define Adv_max         30 
  24. #define Obj_init_max         51 
  25.  
  26.  
  27. #ifndef DINKUM
  28. extern struct object_struct *Rifle ;
  29. extern struct object_struct *Teapot ;
  30. extern struct object_struct *Can ;
  31. extern struct object_struct *Clip ;
  32. extern struct object_struct *Org_clip ;
  33. extern struct object_struct *Recorder ;
  34. extern struct object_struct *Cap ;
  35. extern struct object_struct *Dynamite ;
  36. extern struct object_struct *Letter ;
  37. extern struct object_struct *Clapper ;
  38. extern struct object_struct *Detector ;
  39. extern struct object_struct *Key ;
  40. extern struct object_struct *Umbrella ;
  41. extern struct object_struct *Matches ;
  42. extern struct object_struct *Pills ;
  43. extern struct object_struct *Cube ;
  44. extern struct object_struct *Torch ;
  45. extern struct object_struct *Mat ;
  46. extern struct object_struct *Map ;
  47. extern struct object_struct *Map_frag ;
  48. extern struct object_struct *Bottle ;
  49. extern struct object_struct *Circuit_breaker ;
  50. extern struct object_struct *Lift ;
  51. extern struct object_struct *Door ;
  52. extern struct object_struct *Safe ;
  53. extern struct object_struct *Lift_door ;
  54. extern struct object_struct *Picture ;
  55. extern struct object_struct *Tank ;
  56. extern struct object_struct *Gong ;
  57. extern struct object_struct *Transporter ;
  58. #endif
  59.  
  60. /***************************************************************/
  61.  
  62. #ifdef DINKUM
  63. struct object_struct *Rifle ;
  64. struct object_struct *Teapot ;
  65. struct object_struct *Can ;
  66. struct object_struct *Clip ;
  67. struct object_struct *Org_clip ;
  68. struct object_struct *Recorder ;
  69. struct object_struct *Cap ;
  70. struct object_struct *Dynamite ;
  71. struct object_struct *Letter ;
  72. struct object_struct *Clapper ;
  73. struct object_struct *Detector ;
  74. struct object_struct *Key ;
  75. struct object_struct *Umbrella ;
  76. struct object_struct *Matches ;
  77. struct object_struct *Pills ;
  78. struct object_struct *Cube ;
  79. struct object_struct *Torch ;
  80. struct object_struct *Mat ;
  81. struct object_struct *Map ;
  82. struct object_struct *Map_frag ;
  83. struct object_struct *Bottle ;
  84. struct object_struct *Circuit_breaker ;
  85. struct object_struct *Lift ;
  86. struct object_struct *Door ;
  87. struct object_struct *Safe ;
  88. struct object_struct *Lift_door ;
  89. struct object_struct *Picture ;
  90. struct object_struct *Tank ;
  91. struct object_struct *Gong ;
  92. struct object_struct *Transporter ;
  93.  
  94. extern int room[DM_room][16] ;
  95. extern struct object_struct object[Objcnt] ;
  96. extern int tag[DM_tag] ;
  97. int gleep_count = 0 ; /* gleeps being carried */
  98. int verb, max_score = 1100 ;
  99. int sw_wizard = FALSE ;
  100. long clock_explode ;
  101. int sw_warned, flag_clock, sw_clock = FALSE, i_poison = 0 ;
  102.  
  103. /* gleep initialization matrix */
  104. int gleep_init[10][4] = {
  105. {97,    98,    101,    102},
  106. {98,    99,    102,    103},
  107. {99,    100,    103,    96},
  108. {100,    101,    96,    97},
  109. {101,    102,    97,    98},
  110. {102,    103,    98,    99},
  111. {103,    96,    99,    100},
  112. {134,    132,    136,    137},
  113. {69,    66,    90,    89},
  114. {74,    72,    68,    92} 
  115. };
  116. int gleep_spot[10] ; /* gleep reproduction room pointer array */
  117.  
  118. /* monster matrix initialization matrix */
  119. /*  --- NEVER have a monster initialized next to the        */
  120. /*  Mutant Wombat.  This leads to an intractable bug        */
  121. /*  which need to be solved for eventually but is currently */
  122. /*  swept under the carpet.                                 */
  123.  
  124. int mon_init[Enemy_cnt][4] = {
  125. /* Mutant Wombat */
  126. {139,    67,    86,    115},
  127. /* Drop Bears    */
  128. {77,    75,    78,    79},
  129. {103,    97,    98,    71},
  130. {64,    60,    62,    93},
  131. {67,    81,    66,    75},
  132. /* Hoop Snakes   */
  133. {93,    95,    94,    64},
  134. {75,    73,    76,    67},
  135. {71,    128,    67,    77},
  136. {52,    53,    51,    103},
  137. {115,    114,    113,    129},
  138. {131,    130,    129,    80},
  139. {119,    120,    118,    84},
  140. {109,    87,    83,    52},
  141. /* Revolutionary Guards */
  142. {241,    241,    241,    241},
  143. /* Chief Mullah */
  144. {242,    242,    242,    242}
  145. } ;
  146.  
  147. /* object matrix initialization matrix */
  148. /* --- The orange ammo clip should not be set in a dead end, otherwise  */
  149. /*     that version of the game is almost unwinnable due to the wombat. */
  150. int obj_init[Obj_init_max][5] = {
  151. {V_can,        1,    1,    1,    1},
  152. {V_butt,    165,    166,    161,    152},
  153. {V_bottle,    2,    2,     2,    2},
  154. {V_gold,    54,    53,    55,    56},
  155. {V_dynamite,    78,    91,    69,    117},
  156. {V_clip,    48,    52,    52,    48},
  157. {V_org_clip,    80,    68,    113,    99},
  158. {V_rifle,    48,    56,    48,    52},
  159. {V_cap,        183,    184,    183,    184},
  160. {V_matches,    69,    85,    78,    121},
  161. {V_ring,    87,    135,    127,    105},
  162. {V_ruby,    99,    106,    114,    74},
  163. {V_coin,    127,    127,    87,    87},
  164. {V_bill,    135,    87,    135,    127},
  165. {V_pills,    85,    83,    91,    78},
  166. {V_saphire,    91,    78,    85,    69},
  167. {V_emerald,    68,    74,    117,    66},
  168. {V_letter,    177,    177,    177,    177},
  169. {V_torch,    92,    114,    66,    53},
  170. {V_cube,    202,    202,    202,    202},
  171. {V_wrapper,    171,    216,    239,    101},
  172. {V_tire,    47,    47,    47,    47},
  173. {V_shell,    82,    107,    213,    175},
  174. {V_brick,    33,    33,    33,    33},
  175. {V_rope,    209,    179,    181,    155},
  176. {V_package,    156,    137,    95,    113},
  177. {V_belt,    21,    21,    21,    21},
  178. {V_filter,    142,    142,    142,    142},
  179. {V_string,    204,    88,    118,    167},
  180. {V_umbrella,    37,    37,    37,    37},
  181. {V_tackle,    9,    9,    9,    9},
  182. {V_bit,        105,    117,    90,    184},
  183. {V_jack,    81,    81,    81,    81},
  184. {V_pen,        177,    177,    177,    177},
  185. {V_pencil,    202,    202,    202,    202},
  186. {V_wire,    214,    154,    159,    151},
  187. {V_pipe,    206,    239,    166,    151},
  188. {V_opener,    63,    62,    61,    60},
  189. {V_cord,    80,    131,    119,    79},
  190. {V_photo,    206,    160,    155,    180},
  191. {V_chair,    177,    177,    177,    177},
  192. {V_bulb,    154,    162,    164,    181},
  193. {V_rag,        92,    89,    73,    132},
  194. {V_tube,    139,    121,    129,    132},
  195. {V_carpet,    41,    41,    41,    41},
  196. {V_branch,    28,    28,    28,    28},
  197. {V_cork,    130,    122,    115,    109},
  198. {V_trap,    146,    146,    146,    146},
  199. {V_lighter,    210,    213,    46,    79},
  200. {V_lace,    126,    136,    67,    72},
  201. {V_comb,    164,    157,    156,    172}
  202. } ;
  203.  
  204. /************************************************/
  205. /*           --- Monster Types ---        */
  206. /*                                              */
  207. /*   Monster Type                   */
  208. /*      = 0 = N_ned = Ned Kelly            */
  209. /*      = 1 = N_wombat = Mutant Wombat        */
  210. /*      = (2 - 5) = Drop Bears (four total)    */
  211. /*      = (6 - 13) = Hoop Snakes (eight total)    */
  212. /*      = 14 = Revolutionary Guards             */
  213. /*      = 15 = Chief Mullah                        */
  214. /*                                              */
  215. /************************************************/
  216. struct monster_struct *monster_start ;
  217. struct monster_struct *Ned ;
  218. struct monster_struct *Guards ;
  219. struct monster_struct *Wombat ;
  220. struct monster_struct *Mullah ;
  221.  
  222. int score = 0 ;
  223. int monster_flag = F_no_monster ;
  224. int carry_count, carry_weight ;
  225. long l_time, start_time ;
  226. #endif
  227.  
  228. /***************************************************************/
  229.  
  230. #ifdef OBJLKR
  231. extern int tag[DM_tag] ;
  232. extern int sw_warned, score, max_score, sw_wizard ;
  233. extern struct monster_struct *Ned ;
  234.  
  235. /* a switch used in the "kelly" subroutine */
  236. int sw_valuable = FALSE ;
  237.  
  238. /* layout matrix for game */
  239. /*   n = room number      */ 
  240.  
  241. /*   The direction elements contain the adjoining room or a wall */
  242. /*   if the element value is negative.                           */
  243. /*     room[n][0] = north direction      */
  244. /*     room[n][1] = south direction      */
  245. /*     room[n][2] = east direction       */
  246. /*     room[n][3] = west direction       */
  247. /*     room[n][4] = up direction         */
  248. /*     room[n][5] = down direction       */
  249. /*     room[n][6] = north-east direction */
  250. /*     room[n][7] = north-west direction */
  251. /*     room[n][8] = south-east direction */
  252. /*     room[n][9] = south-west direction */
  253.  
  254. /*  room[n][10] points to the room type                      */
  255. /*               = -1 == instantly lethal                    */
  256. /*               =  0 == short description                   */
  257. /*               =  1 == long description                    */
  258. /*               =  2 == contains an action device           */
  259. /*               =  3 == orignally had a long description    */
  260. /*               =  5 == room goes into itself (looping)     */
  261. /*  room[n][11] flag indicates number of objects in room.    */
  262. /*  room[n][12] is a switch which if TRUE indicates there    */
  263. /*              are unmovable objects present in the room.   */
  264. /*  room[n][13] is the monster indicater, 0 = no monsters    */
  265. /*  room[n][14] is the gleep count                           */
  266. /*  room[n][15] points to the description text file          */
  267.  
  268. int room [DM_room][16] = {
  269. {  3,  2,  1, 15, -1, -1,  1, 15,  3,  2,  0,  0, 0, 0, 0,  0}, 
  270. {  6,  2, 20,  0, -1, -1,  0,  3,  0,  2,  0,  0, 0, 0, 0,  1},
  271. { 28, 11, 29,148, -1, -1, 29, 11, 28,148,  0,  0, 0, 0, 0,  2},
  272. {  4,  0,  6,  4, -1, -1,  2,  1,  4,  2,  0,  0, 0, 0, 0,  3}, 
  273. {  5,  9,  4,  4, -1, -1,  5,  5,  9,  9,  5,  0, 0, 0, 0,  4},
  274. { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0,  5},
  275. {  3, 14, 47,  3, -1, -1,  2,  3, 14,  3,  1,  0, 0, 0, 0,  6},
  276. { 14,  8, 14,  8, -1, -1, 14, 14,  8,  8,  0,  0, 0, 0, 0,  7},
  277. { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0,  8},
  278. {  4,  1,  6,  4, -1, -1,  0,  2,  0,  1,  0,  0, 0, 0, 0,  9},
  279. { 14,  6, 14,  3, -1, -1,  6, 14,  6, 14,  0,  0, 0, 0, 0, 10},
  280. { 28, 12, 28, 12, -1, -1, 12, 28,  3,  6,  1,  0, 0, 0, 0, 11},
  281. { 11, 13, 12, 13, -1, -1, 13, 12, 11, 13,  5,  0, 0, 0, 0, 12},
  282. { 13, 13, 13, 13, -1, -1, 13, 13, 13, 12,  5,  0, 0, 0, 0, 13},
  283. {  6,  7,  7, 10, -1, -1,  6, 10,  7,  7,  0,  0, 0, 0, 0, 14},
  284. {147,148,  0, 16, -1, -1,  0,147,  0,148,  0,  0, 0, 0, 0, 15},
  285. { 19, 19, 16, 17, -1, -1, 19, 19, 17, 17,  5,  0, 0, 0, 0, 16},
  286. { 16, 16, 16, 18, -1, -1, 16, 16, 18, 16,  0,  0, 0, 0, 0, 17},
  287. { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 18},
  288. {  3,  2,  0, 16, -1, -1,  0, 16,  2, 16,  0,  0, 0, 0, 0, 19},
  289. { 21,142, 22,  1, -1, -1, 23,  2,141,  1,  0,  0, 0, 0, 0, 20},
  290. { 42, 20,145, 47, -1, -1,145,  1,145,  6,  0,  0, 0, 0, 0, 21},
  291. { 36, 27, -1, 20, -1, -1, -1, 20, -1, 20,  1,  0, 0, 0, 0, 22},
  292. { 25, 24, 25,145, -1, -1, 25,145, 25, 34,  4,  0, 0, 0, 0, 23},
  293. { 23, 26, 25, 33, -1, -1, 25, 33, 25, 32,  0,  0, 0, 0, 0, 24},
  294. { 25, 25, 25, 25, -1, -1,143, 23, 25, 26,  5,  0, 0, 0, 0, 25},
  295. { 24, 25, 25,141, -1, -1, 25, 31, 25,141,  4,  0, 0, 0, 0, 26},
  296. { 22, 30, -1, 20, -1, -1, -1, 20, -1, 20,  2,  0, 0, 0, 0, 27},
  297. {  0,  2, 29,148, -1, -1, 29, 11,  0,  2,  0,  0, 0, 0, 0, 28},
  298. {142,243,141,  2, -1, -1,141,  2,141,  2,  1,  0, 0, 0, 0, 29},
  299. { 27,141, 31, 20, -1, -1, -1, 20,141,141,  0,  0, 0, 0, 0, 30},
  300. { 32,141, 24, 30, -1, -1, 24, -1, 26,141,  0,  0, 0, 0, 0, 31},
  301. { 33, 31, 24, -1, -1, -1, 24, -1, 24, -1,  0,  0, 0, 0, 0, 32},
  302. { 34, 32, 24, -1, -1, -1, 24, -1, 24, -1,  0,  0, 0, 0, 0, 33},
  303. {145, 33, 24, 35, -1, -1, 23,145, 24, -1,  0,  0, 0, 0, 0, 34},
  304. {145, 36, 34, 20, -1, -1,145,145, -1, 20,  0,  0, 0, 0, 0, 35},
  305. { 35, 22, -1, 20, -1, -1, 35, 20, -1, 20,  2,  0, 0, 0, 0, 36},
  306. { 38, 39, -1, 36, -1, -1, 38, 36, 39, 36,  0,  0, 0, 0, 0, 37},
  307. { -1, 37, -1, -1, -1, -1, -1, -1, -1, 37,  1,  0, 0, 0, 0, 38},
  308. { 37, -1, 41, -1, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0, 39},
  309. { -1, 41, -1, -1, -1, -1, -1, -1, -1, 41,  2,  0, 0, 0, 0, 40},
  310. { 40, -1, -1, 39, -1, -1, 40, -1, -1, -1,  4,  0, 0, 0, 0, 41},
  311. {246, 21,145,  6, -1, -1,145,  1,145,  6,  0,  0, 0, 0, 0, 42},
  312. { -1, -1, -1, 27, -1, -1, -1, 27, -1, -1,  1,  0, 0, 0, 0, 43},
  313. { -1, -1, 43, 48, -1, -1, -1, -1, 43, -1,  0,  0, 0, 0, 0, 44},
  314. { -1,204, 43,149, -1, -1, -1, -1, 43, -1,  0,  0, 0, 0, 0, 45},
  315. {239, -1, 43, -1, -1, -1, -1, -1, 43, -1,  0,  0, 0, 0, 0, 46},
  316. {  3, 20, 21,  6, -1, -1, 21,  3, 20,  6,  0,  0, 0, 0, 0, 47},
  317. { 49, 50, 44, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48},  /*48*/
  318. { 51, 48, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55},  /*49*/
  319. { 48, 56, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55},  /*50*/
  320. { -1, 49, 52, 53, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 51},  /*51*/
  321. { -1, -1, 54, 51, -1, 88, -1, -1, -1, -1,  0,  0, 0, 0, 0, 59},  /*52*/
  322. { -1, -1, 51, 55, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56},  /*53*/
  323. { -1, -1, -1, 52, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 91},  /*54*/
  324. { -1, -1, 53, -1, 57, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 62},  /*54*/
  325. { 50, -1, -1, -1, -1, -1, -1, -1, 74, 72,  0,  0, 0, 0, 0, 64},  /*56*/
  326. { -1, -1, -1, -1, -1, 55, -1, 58, -1, 59,  0,  0, 0, 0, 0, 76},  /*57*/
  327. { -1, -1, -1, -1, -1, -1, -1, 60, 57, -1,  0,  0, 0, 0, 0, 57},  /*58*/
  328. { -1, -1, -1, -1, -1, -1, 57, -1, -1, 61,  0,  0, 0, 0, 0, 58},  /*59*/
  329. { -1, -1, -1, -1, -1, -1, -1, -1, 58, 62,  0,  0, 0, 0, 0, 84},  /*60*/
  330. { -1, -1, -1, -1, -1, -1, 59, 63, -1, -1,  0,  0, 0, 0, 0, 87},  /*61*/
  331. { -1, -1, -1, -1, -1, -1, 60, -1, -1, 64,  0,  0, 0, 0, 0, 58},  /*62*/
  332. { -1, -1, -1, -1, -1, -1, -1, 64, 61, -1,  0,  0, 0, 0, 0, 57},  /*63*/
  333. { -1, -1, -1, -1, -1, 65, 62, -1, 63, -1,  0,  0, 0, 0, 0, 77},  /*64*/
  334. { -1, 66, -1, -1, 64, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 61},  /*65*/
  335. { 65, 67, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55},  /*66*/
  336. { 66, 69, 68, 70, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 78},  /*67*/
  337. { -1, -1, 71, 67, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56},  /*68*/
  338. { 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 92},  /*69*/
  339. {121,128, 67, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48},  /*70*/
  340. { -1, -1, -1, 68, -1, -1, 72, -1, 73, -1,  0,  0, 0, 0, 0, 66},  /*71*/
  341. { -1, -1, -1, -1, -1, -1, 56, -1, -1, 71,  0,  0, 0, 0, 0, 58},  /*72*/
  342. { -1, -1, -1, -1, -1, -1, -1, 71, 75, -1,  0,  0, 0, 0, 0, 57},  /*73*/
  343. { -1, -1, -1, -1, -1, -1, -1, 56, 77, -1,  0,  0, 0, 0, 0, 57},  /*74*/
  344. { -1, -1, -1, -1, -1, -1, 76, 73, -1, 80,  0,  0, 0, 0, 0, 52},  /*75*/
  345. { -1, -1, -1, -1, -1, -1, 77, -1, -1, 75,  0,  0, 0, 0, 0, 58},  /*76*/
  346. { -1, -1, -1, -1, -1, -1, 79, 74, 78, 76,  0,  0, 0, 0, 0, 79},  /*77*/
  347. { -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,  0,  0, 0, 0, 0, 90},  /*78*/
  348. { -1, -1, -1, -1, -1, -1,108, -1, -1, 77,  0,  0, 0, 0, 0, 58},  /*79*/
  349. { -1, -1, 81, 82, -1, -1, 75, -1, -1, -1,  0,  0, 0, 0, 0, 74},  /*80*/
  350. { -1, -1, -1, 80, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 93},  /*81*/
  351. { -1, -1, 80, 83, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56},  /*82*/
  352. { -1, 84, 82, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 81},  /*83*/
  353. { 83, -1, 85, 86, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 50},  /*84*/
  354. { -1, -1, -1, 84, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90},  /*85*/
  355. { 87, -1, 84, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 83},  /*86*/
  356. { -1, 86, -1,109, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 94},  /*87*/
  357. { -1, -1, -1, -1, 52, -1, 92, -1, -1, 89,  0,  0, 0, 0, 0, 96},  /*88*/
  358. { -1, -1, -1, -1, -1, -1, 88, -1, -1, 90,  0,  0, 0, 0, 0, 58},  /*89*/
  359. { -1, -1, -1, -1, -1, -1, 89, -1, -1, 91,  0,  0, 0, 0, 0, 58},  /*90*/
  360. { -1, -1, -1, -1, -1, -1, 90, -1, -1, -1,  0,  0, 0, 0, 0, 90},  /*91*/
  361. { -1, -1, -1, -1, -1, -1, 93, -1, -1, 88,  0,  0, 0, 0, 0, 58},  /*92*/
  362. { -1, -1, -1, -1, -1, -1, -1, 94, 95, 92,  0,  0, 0, 0, 0, 95},  /*93*/
  363. { -1, -1, -1, -1, 96, -1, -1, -1, 93, -1,  0,  0, 0, 0, 0, 60},  /*94*/
  364. { -1, -1, -1, -1, -1, -1, -1, 93,104, -1,  0,  0, 0, 0, 0, 57},  /*95*/
  365. { 97, -1,103, -1, -1, 94, -1, -1, -1, -1,  0,  0, 0, 0, 0, 97},  /*96*/
  366. { 98, 96, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55},  /*97*/
  367. { -1, 97, 99, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 81},  /*98*/
  368. { -1, -1,100, 98, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56},  /*99*/
  369. { -1,101, -1, 99, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 80}, /*100*/
  370. {100,102, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*101*/
  371. {101, -1, -1,103, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*102*/
  372. { -1, -1,102, 96, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*103*/
  373. { -1, -1, -1, -1, -1, -1, -1, 95,105, -1,  0,  0, 0, 0, 0, 57}, /*104*/
  374. { -1, -1, -1, -1, -1, -1, -1,104, -1,106,  0,  0, 0, 0, 0, 86}, /*105*/
  375. { -1, -1, -1, -1, -1, -1,105, -1, -1,107,  0,  0, 0, 0, 0, 58}, /*106*/
  376. { -1, -1, -1, -1, 79, -1,106, -1, -1, -1,  0,  0, 0, 0, 0, 89}, /*107*/
  377. { -1, -1, -1, -1, -1,106, -1, -1, -1, 79,  0,  0, 0, 0, 0, 88}, /*108*/
  378. { -1, -1, 87,110, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*109*/
  379. { -1, -1,109, -1, -1,140, -1, -1, -1, -1,  0,  0, 0, 0, 0, 99}, /*110*/
  380. { -1, -1, -1,140,109, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 98}, /*111*/
  381. { -1, -1,140, -1,113, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 62}, /*112*/
  382. {114, -1, -1, -1, -1,112, -1, -1, -1, -1,  0,  0, 0, 0, 0,100}, /*113*/
  383. {115,113, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*114*/
  384. { -1,114,118,116, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 51}, /*115*/
  385. { -1,117,115, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 81}, /*116*/
  386. {116, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0,101}, /*117*/
  387. { -1, -1,119,115, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*118*/
  388. { -1,125,120,118, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 51}, /*119*/
  389. { -1,122, -1,119, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 80}, /*120*/
  390. { -1, 70, -1,122, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 80}, /*121*/
  391. {120,123,121, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*122*/
  392. {122, -1, -1,124, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*123*/
  393. { -1, -1,123, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*124*/
  394. {119, -1, -1,126, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*125*/
  395. { -1,127,125, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 81}, /*126*/
  396. {126, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*127*/
  397. { 70, -1, -1,129, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*128*/
  398. {130,136,128, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*129*/
  399. { -1,129, -1,131, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 80}, /*130*/
  400. {134,132,130, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*131*/
  401. {131, -1, -1,133, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*132*/
  402. { -1, -1,132, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*133*/
  403. { -1,131, -1,135, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 80}, /*134*/
  404. { -1, -1,134, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*135*/
  405. {129, -1, -1,137, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*136*/
  406. { -1, -1,136,138, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*137*/
  407. {139, -1,137, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 83}, /*138*/
  408. { -1,138, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*139*/
  409. { -1, -1,111,112, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*140*/
  410. { 30, 26, 26,142, -1, -1, 24, 20, 26,142,  0,  0, 0, 0, 0,102}, /*141*/
  411. { 20, 29,141,  2, -1, -1,141,  2,141,  2,  0,  0, 0, 0, 0,103}, /*142*/
  412. { 25, 25, 25, 25, -1, -1, 25, 25,144, 25,  0,  0, 0, 0, 0,104}, /*143*/
  413. {143,143,146,143, -1, -1,143,143,143,143,  1,  0, 0, 0, 0,105}, /*144*/
  414. { 23, 35, 23, 21, -1, -1, 23, 21, 35, 34,  0,  0, 0, 0, 0,106}, /*145*/
  415. { -1, -1, -1,144, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0,107}, /*146*/
  416. {  3, 15,  3,  3, -1, -1,  3,  3, 15, 15,  1,  0, 0, 0, 0,108}, /*147*/
  417. { 15,  2,  2, 15, -1, -1, 15, 15,  2,  2,  0,  0, 0, 0, 0,109}, /*148*/
  418. { -1, -1, 45, -1, -1,150, -1, -1, -1, -1,  0,  0, 0, 0, 0,110}, /*149*/
  419. { -1,151, -1, -1,149, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 61}, /*150*/
  420. {150,152, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*151*/
  421. {151,153, -1,159, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*152*/
  422. {152,154, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*153*/
  423. {153, -1, -1,155, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*154*/
  424. { -1, -1,154,156, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*155*/
  425. {157, -1,155, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 83}, /*156*/
  426. {158,156, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*157*/
  427. { -1,157,159,160, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 51}, /*158*/
  428. { -1, -1,152,158, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,132}, /*159*/
  429. { -1, -1,158,161, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*160*/
  430. { -1, -1,160,162, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*161*/
  431. { -1, -1,161,163, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*162*/
  432. { -1, -1,162,164, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*163*/
  433. { -1, -1,163,165, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*164*/
  434. { -1, -1,164, -1, -1,166, -1, -1, -1, -1,  0,  0, 0, 0, 0,110}, /*165*/
  435. { -1, -1,167,178,165, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0,111}, /*166*/
  436. {168, -1, -1,166, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 82}, /*167*/
  437. {169,167, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*168*/
  438. {170,168, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*169*/
  439. { -1,169, -1, -1,171, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 61}, /*170*/
  440. { -1, -1,172, -1, -1,170, -1, -1, -1, -1,  0,  0, 0, 0, 0,110}, /*171*/
  441. { -1, -1,173,171, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*172*/
  442. { -1, -1,174,172, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*173*/
  443. { -1, -1,175,173, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*174*/
  444. { -1, -1,176,174, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*175*/
  445. { -1, -1,177,175, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*176*/
  446. { -1, -1, -1,176, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,112}, /*177*/
  447. { -1, -1,166,179, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*178*/
  448. { -1, -1,178,180, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*179*/
  449. { -1,181,179, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 81}, /*180*/
  450. {180,182, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*181*/
  451. {181,185,184,183, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 78}, /*182*/
  452. { -1, -1,182, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*183*/
  453. { -1, -1, -1,182, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*184*/
  454. {182, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*185*/
  455. {185,187, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*186*/
  456. {186,189,190,188, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 78}, /*187*/
  457. { -1, -1,187, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*188*/
  458. {187, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 90}, /*189*/
  459. { -1, -1,191,187, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 56}, /*190*/
  460. {192,198, -1,190, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,113}, /*191*/
  461. { -1,191, -1, -1, -1, -1,193, -1, -1, -1,  1,  0, 0, 0, 0,114}, /*192*/
  462. { -1, -1, -1, -1, -1, -1, -1, -1,194,192,  1,  0, 0, 0, 0,115}, /*193*/
  463. { -1,195, -1, -1, -1, -1, -1,193, -1, -1,  1,  0, 0, 0, 0,116}, /*194*/
  464. {194,196, -1, -1, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,117}, /*195*/
  465. {195, -1, -1, -1,199, -1, -1, -1, -1,197,  1,  0, 0, 0, 0,118}, /*196*/
  466. { -1, -1, -1, -1, -1, -1,196,198, -1, -1,  1,  0, 0, 0, 0,119}, /*197*/
  467. {191, -1, -1, -1, -1, -1, -1, -1,197, -1,  1,  0, 0, 0, 0,120}, /*198*/
  468. {200, -1, -1, -1, -1,196, -1, -1, -1, -1,  1,  0, 0, 0, 0,121}, /*199*/
  469. { -1,199,201,202, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,122}, /*200*/
  470. { -1, -1, -1,200, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,123}, /*201*/
  471. { -1, -1,200,203, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,124}, /*202*/
  472. { -1, -1,202, -1, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,125}, /*203*/
  473. { 45,205, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 55}, /*204*/
  474. {204, -1,206, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 83}, /*205*/
  475. { -1, -1, -1,205, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,126}, /*206*/
  476. { -1,208,227, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 81}, /*207*/
  477. {207,209,226, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*208*/
  478. {208,210,225, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*209*/
  479. {209,211,224, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*210*/
  480. {210,217,223, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*211*/
  481. {217,213,222, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*212*/
  482. {212,214,221, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*213*/
  483. {213,215,220, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*214*/
  484. {214,216,219, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 48}, /*215*/
  485. {215, -1,218, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 83}, /*216*/
  486. {211,212, -1,239, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,128}, /*217*/
  487. { -1, -1,237,216, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*218*/
  488. { -1, -1,236,215, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*219*/
  489. { -1, -1,235,214, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*220*/
  490. { -1, -1,234,213, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*221*/
  491. { -1, -1,233,212, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*222*/
  492. { -1, -1,232,211, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*223*/
  493. { -1, -1,231,210, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*224*/
  494. { -1, -1,230,209, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*225*/
  495. { -1, -1,229,208, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*226*/
  496. { -1, -1,228,207, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0, 56}, /*227*/
  497. { -1,229, -1,227, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 80}, /*228*/
  498. {228,230, -1,226, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*229*/
  499. {229,231, -1,225, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*230*/
  500. {230,232, -1,224, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*231*/
  501. {231,233, -1,223, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*232*/
  502. {232,234, -1,222, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*233*/
  503. {233,235, -1,221, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*234*/
  504. {234,236, -1,220, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*235*/
  505. {235,237, -1,219, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*236*/
  506. {236,238, -1,218, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 49}, /*237*/
  507. {237, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,127}, /*238*/
  508. { -1, 46,217, -1, -1, -1, -1, -1, -1, -1,  0,  0, 0, 0, 0, 81}, /*239*/
  509. {241, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,129}, /*240*/
  510. { -1,240,242, -1, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,130}, /*241*/
  511. { -1, -1, -1,241, -1, -1, -1, -1, -1, -1,  1,  0, 0, 0, 0,131}, /*242*/
  512. { 29,244,141,  2, -1, -1,141,  2,141,  2,  4,  0, 0, 0, 0,133}, /*243*/
  513. {243,245,141,  2, -1, -1,141,  2,141,  2,  0,  0, 0, 0, 0,134}, /*244*/
  514. {244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0,135}, /*245*/
  515. {247, 42,145,  6, -1, -1,145,  1,145,  6,  4,  0, 0, 0, 0,136}, /*246*/
  516. {248,246,145,  6, -1, -1,145,  1,145,  6,  0,  0, 0, 0, 0,134}, /*247*/
  517. { -1,247, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0, 0, 0, 0,135} /*248*/
  518. };
  519.  
  520. /*****************************************************************/
  521. /*                                                               */
  522. /*                   --- Object Matrix ---                       */
  523. /*                                                               */
  524. /*  Location  = room location if =>0, else =-1 is in possesion   */
  525. /*              of player, = -2 means unmade, = -3 means it is   */
  526. /*              destroyed, = -5 means the object is in the safe. */ 
  527. /*  Value     = object's value                                   */
  528. /*  Type      = external property of the object                  */
  529. /*                  = 1  indicates special action on taking      */
  530. /*                  = 2  alias                         */
  531. /*                  = 3  unmovable object which has no actions   */
  532. /*  ID        = object parse id name                             */
  533. /*  Weight    = object's weight                                  */
  534. /*  Status    = internal property of the object                  */
  535. /*  Text      = Character string describing object               */
  536. /*                                                               */
  537. /*****************************************************************/
  538.  
  539. struct object_struct object[Objcnt] = {
  540. { 0,        0,           0,      V_can,        10,    0,        
  541.     "an empty can of Fourex beer"},
  542. { 0,        0,           0,      V_butt,        1,     0,
  543.     "a cigarette butt"},
  544. { 0,        0,           0,      V_bottle,    20,     0,
  545.     "an empty bottle of Black Swan Lager"},
  546. {36,        0, Z_transform,      V_mat,         300,     0,
  547.     "an old doormat with \"ACME Gold Mines Ltd.\" written on it"},
  548. {B_unmade,  0,           0,      V_key,         5,     0,
  549.     "a large brass key"},
  550. { 0,        0,             0,    V_umbrella,    100,     0,
  551.     "a ripped and bent up umbrella"},
  552. { 0,        0,             0,    V_tackle,     50,     0,
  553.     "a two metre length of fishing tackle without a hook"},
  554. { 0,        0,             0,    V_bit,         10,     0,
  555.     "a broken drill bit"},
  556. {38,        0, Z_transform,      V_map,        10,     0,
  557.     "a very old but detailed map of the ACME Mine"},
  558. {B_unmade,  0,           0,      V_map_frag,    10,     0,
  559.     "a fragment of a map showing the ACME Mine"},
  560. {B_in_safe, 0,           0,      V_paper,    10,     0,
  561.     "a sheet of paper with some writing on it"},
  562. { 0,      200,           0,    V_gold,     500,     0,
  563.     "a gold bar weighing ten kilograms"},
  564. { 0,        0,             0,    V_jack,        400,     0,
  565.     "a hydraulic jack which is rusted solid"},
  566. { 0,        0,             0,    V_dynamite,    100,     0,
  567.     "a large stick of dynamite"},
  568. { 0,        0,           0,    V_clip,     50,     150,
  569.     "an M16 ammo clip designed to hold up to 200 rounds"},
  570. { 0,        0,             0,    V_pen,         5,     0,
  571.     "a fountain pen which is dried up and useless"},
  572. { 0,        0,           0,    V_org_clip,    50,     5,
  573.     "an orange M16 ammo clip which is glowing a faint pale blue"},
  574. { 0,        0,             0,    V_pencil,     5,     0,
  575.     "a mechanical pencil without any leads"},
  576. { 0,        0,           0,    V_rifle,     300,     0,  /* don't modify */
  577.     "an unloaded, fully automatic M16 infantry rifle"},
  578. { 0,        0,             0,    V_wire,     100,     0,
  579.     "a piece of copper wire"},
  580. { 0,        0,             0,    V_pipe,        200,     0,
  581.     "a short length of galvanized iron pipe"},
  582. { 0,        0,           0,    V_cap,        5,     0,
  583.     "a blasting cap with 20 cm. of fuse attached"},
  584. { 0,        0,           0,      V_matches,    2,     0,
  585.     "a box of \"Red Head\" matches"},
  586. { 0,      100,           0,      V_ring,     5,     0,
  587.     "a diamond ring with a three carat flawless blue diamond"},
  588. { 0,        0,             0,    V_opener,    10,     0,
  589.     "a can opener"},
  590. { 0,      100,           0,      V_ruby,     30,     0,
  591.     "a bright red ruby the size of an egg"},
  592. {B_unmade,200,           0,      V_teapot,    50,     0,
  593.     "an antique sterling silver teapot with \"N.K.\" engraved on it"},
  594. { 0,      150,           0,      V_coin,     7,     0,
  595.     "a silver Syracusian Dekadrachma coin"},
  596. { 0,        0,             0,    V_cord,        70,     0,
  597.     "an electrical extension cord"},
  598. { 0,      100,           0,    V_bill,        5,     0,
  599.     "a $100 dollar bill"},
  600. { 0,        0,             0,    V_photo,    5,     0,
  601.     "an autographed photo of Sir Joh"},
  602. { 0,        0,           0,    V_chair,    500,     0,
  603.     "an old folding chair"},
  604. { 0,        0,           0,    V_bulb,        10,     0,
  605.     "a burned out light bulb"},
  606. { 0,        0,             0,      V_pills,    10,     0,
  607.     "a packet containing atropine pills"},
  608. { 0,      150,           0,      V_saphire,    30,     0,
  609.     "a high quality artificial saphire"},
  610. { 0,      100,           0,    V_emerald,    30,     0,
  611.     "a huge uncut emerald"},
  612. { 0,        0,             0,    V_rag,          50,     0,
  613.     "an oily rag"},
  614. { 0,        0,             0,    V_tube,        50,     0,
  615.     "a burned out fluorescent tube"},
  616. { 0,        0,             0,    V_carpet,    400,     0,
  617.     "a filthy worn out carpet"},
  618. { 0,        0,             0,    V_branch,    400,     0,
  619.     "a branch from a gum tree"},
  620. { 0,        0,             0,      V_letter,    10,     0,
  621.     "a thick airmail letter, marked \"Postage Due\""},
  622. { 0,        0,             0,    V_cork,     5,     0,
  623.     "a cork from a wine bottle"},
  624. { 0,        0,             0,      V_torch,    100,     0,
  625.     "a high intensity battery powered torch"},
  626. { 0,        0,             0,    V_trap,        5,     0,
  627.     "an old cockroach trap"},
  628. { 0,        0,             0,    V_lighter,    5,     0,
  629.     "an empty butane cigarette lighter"},
  630. { 0,        0,             0,      V_cube,     50,     0,
  631.     "a small black cube with a blue push button on one side"}, 
  632. {B_unmade,700,           0,      V_clapper,    100,     0,
  633.     "an ancient and priceless gong clapper made of ivory and gold"},
  634. {B_unmade,  0,           0,      V_detector,    100,     0,
  635.     "a Semtex explosive detector with a push button switch"},
  636. { 0,        0,             0,    V_lace,        2,     0,
  637.     "a broken shoe lace"},
  638. { 0,        0,             0,    V_comb,        5,     0,
  639.     "a dirty old comb"},
  640. { 0,        0,             0,    V_wrapper,    3,     0,
  641.     "a Cornetto ice cream cone wrapper"},
  642. { 0,        0,             0,    V_tire,        400,     0,
  643.     "a bald automobile tyre"},
  644. { 0,        0,             0,    V_shell,    3,     0,
  645.     "an empty broken egg shell"},
  646. { 0,        0,             0,    V_brick,    100,     0,
  647.     "a broken piece of brick"},
  648. { 0,        0,             0,    V_rope,        100,     0,
  649.     "a one metre length of rope"},
  650. { 0,        0,             0,    V_package,    5,     0,
  651.     "an empty package of Stradbroke cigarettes"},
  652. { 0,        0,             0,    V_belt,        10,     0,
  653.     "a broken automobile fan belt"},
  654. { 0,        0,             0,    V_filter,    50,     0,
  655.     "a used automobile oil filter"},
  656. { 0,        0,             0,    V_string,    5,    0,
  657.     "a short piece of string"},
  658. {B_unmade,  0,           0,      V_recorder,    0,     S_inactive,
  659.     "a data recorder having four coloured buttons"},
  660. { 39,       0, Z_unmovable,    V_poster,    0,    0,
  661.     "Error"},
  662. { 41,       0, Z_unmovable,    V_poster,    0,    0,
  663.     "Error"},
  664. { 39,       0, Z_unmovable,    V_cockroach,    0,    0,
  665.     "Error"},
  666. { 41,       0, Z_unmovable,    V_cockroach,    0,    0,
  667.     "Error"},
  668. {243,       0, Z_unmovable,    V_kangaroo,    0,    0,
  669.     "Error"},
  670. {246,       0, Z_unmovable,    V_kangaroo,    0,    0,
  671.     "Error"},
  672. { 26,       0, Z_unmovable,    V_spinifex,    0,    0,
  673.     "Error"},
  674. {R_gong,    0, Z_unmovable,    V_gong,     0,    S_fair_game,
  675.     "Error"},
  676. { 23,       0, Z_unmovable,    V_bulldust,    0,    0,
  677.     "Error"},
  678. {159,       0, Z_unmovable,    V_message,    0,    0,
  679.     "Error"},
  680. {R_store_room,  0, Z_unmovable,    V_circuit,    0,    FALSE,
  681.     "Error"},
  682. {R_lift_inside, 0, Z_unmovable,    V_lift,        0,    L0,
  683.     "Error"},
  684. {R_office_entr, 0, Z_unmovable,    V_door,        0,    S_closed,
  685.     "Error"},
  686. {R_office_mang, 0, Z_unmovable,    V_safe,        0,    S_closed,
  687.     "Error"},
  688. {R_lift_entr,    0, Z_unmovable,    V_lift_door,    0,    S_closed,
  689.     "Error"},
  690. {R_office_mang, 0, Z_unmovable,    V_picture,    0,    S_closed,
  691.     "Error"},
  692. {R_gleep_tank,    0, Z_unmovable,    V_tank,        0,    0,
  693.     "Error"},
  694. {R_transporter,    0, Z_unmovable,    V_transporter,    0,    FALSE,
  695.     "Error"},
  696. {R_warning,     0, Z_unmovable,    V_warning,    0,    0,
  697.     "Error"},
  698. {R_office_mang, 0, Z_unmovable,    V_chart,    0,    0,
  699.     "Error"},
  700. {R_office_mang, 0, Z_unmovable,    V_desk,        0,    0,
  701.     "Error"},
  702. {R_foreman,    0, Z_unmovable,    V_desk,        0,    0,
  703.     "Error"}
  704. } ;     
  705.  
  706. #endif
  707.  
  708. /***************************************************************/
  709.  
  710. #ifdef DSCRB
  711. int pill_count = 7 ;
  712. extern int room[DM_room][16] ;
  713. extern int sw_active ;
  714. int rifle_flag = F_safety ;
  715. extern int clip_flag ;
  716. extern struct object_struct object[Objcnt] ;
  717. extern struct monster_struct *Ned ;
  718.  
  719. #endif
  720.  
  721. /***************************************************************/
  722.  
  723. #ifdef PUSHER
  724. /* subroutines: new_score, pusher, switcher */
  725. extern int room[DM_room][16] ;
  726. extern int tag[DM_tag] ;
  727. extern struct object_struct object[Objcnt] ;
  728. extern int monster_flag, rifle_flag ;
  729. extern int verb, score;
  730. extern long l_time, start_time ;
  731.  
  732. FILE *fp ;
  733. #endif
  734.  
  735. /***************************************************************/
  736.  
  737. #ifdef LONG_DESCP
  738. extern int room[DM_room][16] ;
  739. extern struct object_struct object[Objcnt] ;
  740. extern int monster_flag ;
  741.  
  742. #endif
  743.  
  744. /***************************************************************/
  745.  
  746. #ifdef ACTOR
  747. extern int room[DM_room][16], tag[DM_tag] ;
  748. extern int gleep_safe, verb ;
  749. extern struct object_struct object[Objcnt] ;
  750. extern int clip_flag, rifle_flag, monster_flag ;
  751. extern struct monster_struct *Ned ;
  752. extern struct monster_struct *Wombat ;
  753. extern struct monster_struct *monster_start ;
  754.  
  755. #endif
  756.  
  757. /***************************************************************/
  758.  
  759. #ifdef MNSTR
  760. extern int room[DM_room][16] ;
  761. extern struct object_struct object[Objcnt] ;
  762. extern int monster_flag ;
  763. extern int carry_count, carry_weight ;
  764. extern struct monster_struct *Ned ;
  765. extern struct monster_struct *Wombat ;
  766. extern struct monster_struct *Guards ;
  767. extern struct monster_struct *Mullah ;
  768. extern struct monster_struct *monster_start ;
  769.  
  770. #endif
  771.  
  772. /***************************************************************/
  773.  
  774. #ifdef OPNR
  775. int sw_active = FALSE ;
  776. extern int room[DM_room][16] ;
  777. extern struct object_struct object[Objcnt] ;
  778. extern int sent[20];
  779. extern int gleep_count, gleep_safe ;
  780. extern int tag[DM_tag] ;
  781. extern int sw_active ;
  782. extern int pill_count ;
  783. extern int gleep_spot[10] ;
  784. extern int score, clip_flag ;
  785. extern int carry_count, carry_weight ;
  786. extern long clock_explode ;
  787. extern int flag_clock, sw_clock, i_poison ;
  788.  
  789. struct read_struct read_object[Read_objcnt] = {
  790.     {V_map_frag,    TRUE }, 
  791.     {V_can,        FALSE }, 
  792.     {V_recorder,    FALSE }, 
  793.     {V_pills,    FALSE }, 
  794.     {V_letter,    TRUE },
  795.     {V_paper,    TRUE }, 
  796.     {V_cube,    FALSE }, 
  797.     {V_clip,    FALSE }, 
  798.     {V_org_clip,    FALSE }, 
  799.     {V_rifle,    FALSE }, 
  800.     {V_detector,    FALSE }, 
  801.     {V_safe,    FALSE }, 
  802.     {V_gong,    FALSE },
  803.     {V_message,    TRUE },
  804.     {V_warning,    TRUE }
  805. } ; 
  806.  
  807. #endif
  808.   
  809. /***************************************************************/
  810.  
  811. #ifdef PARSE
  812. int sent[20], number_word ;
  813. extern int verb ;
  814. extern int sw_wizard ; 
  815. extern int room[DM_room][16] ;
  816. extern struct object_struct object[Objcnt] ;
  817. extern struct read_struct read_object[Read_objcnt] ;
  818. int tag[DM_tag] ;
  819. extern FILE *fp ;
  820.  
  821. /* Game vocabulary */
  822. char *vocab[Vocab_cnt] = {
  823. "north","south","east","west","up",
  824. "down","northeast","northwest","southeast","southwest",
  825. "n","s","e","w","u",                            /* "u"          = 15 */
  826. "d","ne","nw","se","sw",                        /* "sw"         = 20 */
  827. "quit","unlock","lock","take","leave",          /* "leave"      = 25 */
  828. "drop","can","bottle","mat","key",              /* "key"        = 30 */
  829. "butt","look","door","open","get",              /* "get"        = 35 */
  830. "throw","turn","on","off","push",               /* "push"       = 40 */
  831. "button","enter","switch","zero","forty-nine",  /* "forty-nine" = 45 */
  832. "sixty-seven","eighty-two","0","49","67",       /* "67"         = 50 */
  833. "82","beer","lager","doormat","lift",           /* "lift"       = 55 */ 
  834. "'on'","'off'","SVC","map","picture",           /* "picture"    = 60 */
  835. "safe","dial","paper","put","close",            /* "close"      = 65 */
  836. "read","gold","bar","dynamite","rifle",         /* "rifle"      = 70 */
  837. "M16","m16","cap","matches","diamond",          /* "diamond"    = 75 */
  838. "ring","ruby","silver","coin","bill",           /* "bill"       = 80 */
  839. "money","teapot","clip","ammo","box",           /* "box"        = 85 */
  840. "stick","pills","orange","glowing","saphire",   /* "saphire"    = 90 */
  841. "emerald","score","inventory","examine","describe",
  842. "drink","fill","water","fourex","invent",    /* "invent"    = 100 */
  843. "view","press","exit","all","Fourex",        /* "Fourex"    = 105 */
  844. "everything","shoot","kill","ned","Ned",    /* "Ned"    = 110 */
  845. "kelly","Kelly","pick","grab","combination",    /* "combination"= 115 */
  846. "select","safety","SAFE","triple","III",    /* "III"    = 120 */
  847. "single","I","auto","AUTO","automatic",        /* "automatic"    = 125 */
  848. "set","insert","attach","plan","gun",           /* "gun"        = 130 */
  849. "magazine","hoop","snake","bear","wombat",    /* "wombat"     = 135 */
  850. "remove","eject","org_clip","shut","gleep",    /* "gleep"    = 140 */
  851. "gleeps","letter","envelope","torch","mail",    /* "mail"       = 145 */
  852. "tank","carefully","gently","softly","slow_drop",
  853. "light","ignite","fuse","slowly","match",    /* "match"    = 155 */
  854. "cube","blue","blue-button","gray","gray-button",
  855. "clapper","sound","bang","hit","strike",    /* "strike"    = 160 */
  856. "gong","detector","give","STATS","JSYS",
  857. "SU","yellow","yellow-button","poster","eat",
  858. "swallow","pill","atropine","packet","wrapper",
  859. "tyre","shell","brick","rope","package",
  860. "belt","filter","string","cabinet","calendar",
  861. "tackle","bit","jack","pen","pencil",
  862. "wire","pipe","panel","opener","cord",
  863. "photo","chair","bulb","rag","tube",        /* "tube"    = 200 */
  864. "carpet","branch","cork","trap","lighter",
  865. "lace","comb","umbrella","meadow","billabong",
  866. "river","road","forest","grass","stream",
  867. "desert","building","office","hideout","dust",
  868. "mine","tunnel","tree","spinifex","hexagon",
  869. "spacecaft","airlock","wing","hole","tray",
  870. "liquid","cockroach","go","scream","yell",
  871. "bring","help","dump","attack","check",
  872. "inspect","place","touch","pull","extinguish",
  873. "ask","talk","tell","find","move",        /* "move"    = 250 */
  874. "break","kick","smash","feed","taste",
  875. "smell","slam","desk","in","into",
  876. "under","out","from","by","with",
  877. "fling","what","where","are","am",        /* "am"        = 275 */
  878. "have","qUeStIoN","how","why","who",        /* "who"    = 280 */
  879. "when","leap","walk","run","jump",        /* "jump"       = 285 */
  880. "hop","stroll","saunter","swagger","swing",    /* "swing"        = 290 */
  881. "dig","swim","depart","info","back",        /* "back"    = 295 */
  882. "hold","fire","stand","painting","doors",    /* "doors"    = 300 */
  883. "treasure","trigger","load","unload","sand",    /* "sand"    = 305 */
  884. "cockroaches","kangaroo","climb","bulldust","kangaroos",
  885. "spinifexes","fuze","message","wall","recorder",
  886. "red","white","green","red-button","white-button",
  887. "green-button","grey","matchbox","map","circuit",   /* "map" is "map_frag" */
  888. "lift-door","transporter","warning","explosive","self",
  889. "myself","yourself","one","two","three",
  890. "four","five","toss","chart","charts","schedule",
  891. "schedules","orange-button"
  892. };
  893.  
  894. /* Question Table */
  895. int quest[Quest_max] = {
  896. V_what, V_where, V_are, V_am, V_have,
  897. V_how, V_why, V_who, V_when
  898. } ;
  899.  
  900. /* Adjective Table */
  901. struct adjective_struct adjective[Adj_max] = {
  902. { V_drop, V_bear,F_ignore,F_ignore},        /* drop bear */
  903. { V_gold, V_bar,F_ignore,F_ignore},        /* gold bar */
  904. { V_orange,V_clip,V_org_clip,F_replace},    /* orange clip */
  905. { V_glowing, V_clip, V_org_clip,F_replace},    /* glowing clip */
  906. { V_blue,V_switch,V_blue_button,F_replace},    /* blue switch */
  907. { V_blue,V_button,V_blue_button,F_replace},    /* blue button */
  908. { V_gray,V_switch,V_gray_button,F_replace},    /* gray switch */
  909. { V_gray,V_button,V_gray_button,F_replace},    /* gray button */
  910. { V_yellow,V_switch,V_yellow_button,F_replace},    /* yellow switch */
  911. { V_yellow,V_button,V_yellow_button,F_replace},    /* yellow button */
  912. { V_red,V_switch,V_red_button,F_replace},    /* red switch */
  913. { V_red,V_button,V_red_button,F_replace},    /* red button */
  914. { V_white,V_switch,V_white_button,F_replace},    /* white switch */
  915. { V_white,V_button,V_white_button,F_replace},    /* white button */
  916. { V_green,V_switch,V_green_button,F_replace},    /* green switch */
  917. { V_green,V_button,V_green_button,F_replace},    /* green button */
  918. { V_grey,V_switch,V_gray_button,F_replace},    /* grey switch */
  919. { V_grey,V_button,V_gray_button,F_replace},    /* grey button */
  920. { V_orange,V_switch,V_orange_button,F_replace},    /* orange switch */
  921. { V_orange,V_button,V_orange_button,F_replace}    /* orange button */
  922. } ;
  923.  
  924. /* Adverb Table */
  925. struct adverb_struct adverb[Adv_max] = { 
  926. { V_down, V_put, V_drop},            /* put down */
  927. { V_down, V_set, V_drop},            /* set down */
  928. { V_carefully, V_drop, V_slow_drop},        /* drop carefully */
  929. { V_gently, V_drop, V_slow_drop},        /* drop slowly */
  930. { V_softly, V_drop, V_slow_drop},        /* drop softly */
  931. { V_slowly, V_drop, V_slow_drop},        /* drop slowly */
  932. { V_carefully, V_put, V_slow_drop},        /* put carefully */
  933. { V_gently, V_put, V_slow_drop},        /* put slowly */
  934. { V_softly, V_put, V_slow_drop},        /* put softly */
  935. { V_slowly, V_put, V_slow_drop},        /* put slowly */
  936. { V_in, V_go, V_enter},                /* go in */
  937. { V_in, V_move, V_enter},            /* move in */
  938. { V_in, V_leap, V_enter},            /* leap in */
  939. { V_in, V_walk, V_enter},            /* walk in */
  940. { V_in, V_run, V_enter},            /* run in */
  941. { V_in, V_jump, V_enter},            /* jump in */
  942. { V_in, V_hop, V_enter},            /* hop in */
  943. { V_in, V_stroll, V_enter},            /* stroll in */
  944. { V_in, V_saunter, V_enter},             /* saunter in */
  945. { V_in, V_swagger, V_enter},            /* swagger in */
  946. { V_out, V_go, V_exit},                /* go out */
  947. { V_out, V_move, V_exit},            /* move out */
  948. { V_out, V_leap, V_exit},            /* leap out */
  949. { V_out, V_walk, V_exit},            /* walk out */
  950. { V_out, V_run, V_exit},            /* run out */
  951. { V_out, V_jump, V_exit},            /* jump out */
  952. { V_out, V_hop, V_exit},            /* hop out */
  953. { V_out, V_stroll, V_exit},            /* stroll out */
  954. { V_out, V_saunter, V_exit},             /* saunter out */
  955. { V_out, V_swagger, V_exit}            /* swagger out */
  956. } ;
  957.  
  958. /* Verb Table */
  959. int verb_table[Verb_max] = {
  960. V_quit,V_unlock,V_lock,V_take,V_leave,
  961. V_drop,V_look,V_open,V_get,V_throw,
  962. V_turn,V_push,V_enter,V_switch,V_lift,
  963. V_svc,V_dial,V_put,V_close,V_read,
  964. V_score,V_inventory,V_examine,V_describe,V_drink,
  965. V_fill,V_invent,V_view,V_press,V_exit,
  966. V_shoot,V_kill,V_pick,V_grab,V_combination,
  967. V_select,V_set,V_insert,V_attach,V_remove,
  968. V_eject,V_shut,V_light,V_ignite,V_sound,
  969. V_bang,V_hit,V_strike,V_give,V_stats,
  970. V_jsys,V_su,V_eat,V_swallow,V_fling,
  971. V_help,V_leap,V_walk,V_run,V_jump,
  972. V_hop,V_stroll,V_saunter,V_swagger,V_go,
  973. V_move,V_swing,V_dig,V_swim,V_depart,
  974. V_info,V_back,V_hold,V_fire,V_pull,
  975. V_stand,V_load,V_unload,V_climb,V_toss,
  976. V_inspect
  977. };
  978.  
  979. #endif
  980.  
  981. /***************************************************************/
  982.  
  983. #ifdef TAKER
  984. int clip_flag = F_no_clip ;
  985. int gleep_safe = 0, gleep_drop = FALSE ;
  986. extern char *vocab[Vocab_cnt] ;
  987. extern int room[DM_room][16] ;
  988. extern int rifle_flag, number_word ; 
  989. extern struct object_struct object[Objcnt] ;
  990. extern int carry_count, carry_weight ;
  991. extern int gleep_count, verb, sent[20], tag[DM_tag] ;
  992. extern int sw_valuable ;
  993.  
  994. #endif
  995.